home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 01 New Uploads / ROMVARS.TXT < prev    next >
Encoding:
Text File  |  2019-04-13  |  17.3 KB  |  526 lines

  1. ;========================================================================================
  2. ;    VIC-20 KERNEL and BASIC ROM Variable Equates
  3. ;    (c) 1996 Richard A. Cini, Jr. All Rights Reserved.
  4. ;
  5. ;    Portions of this have been derived from a file in comp.sys.cbm dated 9/1/94.
  6. ;    File was restructured to be used as part of an <#INCLUDE> assembler directive.
  7. ;    Undefined symbols from the comp.sys.cbm doc were created; others cleaned-up.
  8. ;    Variable locations were cross-referenced against other sources for correctness.
  9. ;
  10. ;
  11. ;  Release History:
  12. ;  ================
  13. ;  1996/12/13    0.10    First release to CBMAPPS (sort of public beta)
  14. ;
  15. ;========================================================================================
  16.  
  17. ;
  18. ;Public KERNEL API
  19. ; For indirected vectors, remember to use an indirect JSR to "call through" to function.
  20. ;
  21. ACPTR  =$EF19        ;Receive From Serial Bus
  22. ;BREAK  =$FED2        ;Break vector handler
  23. BREAK  =IBREAK
  24. ;CHKIN  =$F2C7        ;Set Input Device
  25. CHKIN  =ICHKIN
  26. ;CHKOUT =$F309        ;Set Output Device
  27. CHKOUT =ICHKOUT
  28. ;CHRIN  =$F20E        ;Input a byte
  29. CHRIN  =ICHRIN
  30. ;CHROUT =$F27A        ;Output One Character
  31. CHROUT =ICHROUT
  32. CIOUT  =$EEE4        ;Send Serial Deferred
  33. ;CLALL  =$F3EF        ;Abort All Files
  34. CLALL  =ICLALL
  35. ;CLOSE  =$F34A        ;Close File
  36. CLOSE  =ICLOSE
  37. ;CLRCHN =$F3F3        ;Restore Default I/O
  38. CLRCHN =ICLRCHN
  39. ;GETIN  =$F1F5        ;Get a byte
  40. GETIN  =IGETIN
  41. IOBASE =$E500        ;Return I/O Base Address
  42. LISTN  =$EE17        ;Send LISTEN Command on Serial Bus    
  43. LOAD   =$F542        ;Load RAM From Device (flows to ILINKL)
  44. MEMBOT =$FE82        ;Set / Read Bottom of Memory
  45. MEMTOP =$FE73        ;Set / Read Top of Memory
  46. ;OPEN   =$F40A        ;Open File
  47. OPEN   =IOPEN
  48. PLOT   =$E50A
  49. RDTIM  =$F760        ;Read Real-Time Clock
  50. READST =$FE57        ;Get I/O Status Word
  51. RESTOR =$FD52        ;Restore Kernal Vectors (at $0314)
  52. SAVE   =$F675        ;Save RAM To Device (flows to ILINKS)
  53. SCNKEY =$EB1E        ;Scan keyboard
  54. SCREEN =$E505
  55. SECND  =$EEC0        ;Send LISTEN Secondary Address
  56. SETLFS =$FE50        ;Set Logical File Parameters
  57. SETMSG =$FE66        ;Control OS Messages
  58. SETNAM =$FE49        ;Set Filename
  59. SETTIM =$F767        ;Set Real-Time Clock
  60. SETTMO =$FE6F        ;Set IEEE Timeout
  61. ;STOP   =$F770        ;Check STOP Key
  62. STOP   =ISTOP
  63. TALK   =$EE14        ;Send TALK Command on Serial Bus    
  64. TKSA   =$EECE        ;Send TALK Secondary Address
  65. UDTIM  =$F734        ;Increment Real-Time Clock
  66. UNLSN  =$EF04        ;Send UNLISTEN on Serial Bus
  67. UNTLK  =$EEF6        ;Send UNTALK on Serial Bus
  68. ;USER   =$FED2        ;User vector
  69. USER   =IUSER
  70. VECTOR =$FD57        ;Change Vectors For User
  71. ;
  72. ;
  73. ;Transfer Vectors
  74. ; Generally, these are not meant to be called by USER programs, except maybe IRQ, which
  75. ; can be called to chain interrupts.
  76. NMI    =NMIXFR        ; FFFA =>FEA9=>(0318)
  77. RESET  =RSTXFR        ; FFFC =>FD22
  78. IRQ    =IRQXFR        ; FFFE =>FF72=>(0314)/(0316)
  79.  
  80. ;
  81. ;Indirected vectors
  82. ; These are the locations specified in the KERNEL ROM. I think that it is easier to call the function
  83. ; directly. KERNEL has the following, for example:
  84. ;
  85. ;BREAK    JMP($0316)
  86. ;
  87. IBREAK  =$0316        ;Break vector (FED2)
  88. ICHKIN  =$031E        ;Set Input Device
  89. ICHKOUT =$0320        ;Set Output Devic
  90. ICHRIN  =$0324        ;Input a byte
  91. ICHROUT =$0326        ;Output One Character
  92. ICLALL  =$032C        ;Abort All Files
  93. ICLOSE  =$031C        ;Close File
  94. ICLRCHN =$0322        ;Restore Default I/O
  95. IGETIN  =$032A        ;Get a byte
  96. IIRQ    =$0314        ;IRQ vector pointer (EABF)
  97. ILINKL  =$0330        ;Link to LOAD
  98. ILINKS  =$0332        ;Link to SAVE
  99. INMI    =$0318        ;Non-maskable interrupt vector pointer (FEAD)
  100. IOPEN   =$031A        ;Open File
  101. ISTOP   =$0328        ;Check STOP Key
  102. IUSER   =$032E        ;User vector (FED2)
  103.  
  104. ;
  105. ;General ROM variable equates
  106. ;BASIC
  107. BENTER =$c000        ;Basic Restart Vectors
  108. BPANIC =$C002        ;Basic PANIC entry
  109. BASSIG =$c004        ;'cbmbasic'
  110.  
  111. STMDSP =$c00c        ;BASIC Command Vectors
  112. FUNDSP =$c052        ;BASIC Function Vectors
  113. OPTAB  =$c080        ;BASIC Operator Vectors
  114. RESLST =$c09e        ;BASIC Command Keyword Table
  115. MSCLST =$c129        ;BASIC Misc. Keyword Table
  116. OPLIST =$c140        ;BASIC Operator Keyword Table
  117. FUNLST =$c14d        ;BASIC Function Keyword Table
  118. ERRTAB =$c19e        ;Error Message Table
  119. ERRPTR =$c328        ;Error Message Pointers
  120. OKK    =$c364        ;Misc. Messages
  121.             ;c364    ;'<cr>ok<cr>'
  122.             ;c369    ;'error'
  123.         
  124. UNUSE1 =$c389        ;Unused byte
  125. FNDFOR =$c38a        ;Find FOR/GOSUB Entry on Stack
  126. BLTU   =$c3b8        ;Open Space in Memory
  127. GETSTK =$c3fb        ;Check Stack Depth
  128. REASON =$c408        ;Check Memory Overlap
  129. OMERR  =$c435        ;Output "?OUT OF MEMORY Error"
  130. ERROR  =$c437        ;Error Routine
  131. ERRFIN =$c469        ;Break Entry
  132. READY  =$c474        ;BASIC ready entry
  133. MAIN   =$c480        ;Input & Identify BASIC Line
  134. MAIN1  =$c49c        ;Get Line Number & Tokenise Text
  135. INSLIN =$c4a2        ;Insert BASIC Text
  136. LNKPRG =$c533        ;Rechain Lines
  137. INLIN  =$c560        ;Input Line Into Buffer
  138. CRUNCH =$c579        ;Tokenize Input Buffer
  139. FNDLIN =$c613        ;Search for Line Number
  140. SCRTCH =$c642        ;Perform [new]
  141. CLEAR  =$c65e        ;Perform [clr]
  142. STXPT  =$c68e        ;Reset TXTPTR
  143. LIST   =$c69c        ;Perform [list]
  144. QPLOP  =$c717        ;Handle LIST 
  145. FOR    =$c742        ;Perform [for]
  146. NEWSTT =$c7ae        ;BASIC Warm Start
  147. CKEOL  =$c7c4        ;Check End of Program
  148. GONE   =$c7e1        ;Prepare to execute statement
  149. GONE3  =$c7ed        ;Perform BASIC Keyword
  150. RESTOR =$c81d        ;Perform [restore]
  151. STOP   =$c82c        ;Perform [stop], [end], break
  152. CONT   =$c857        ;Perform [cont]
  153. RUN    =$c871        ;Perform [run]
  154. GOSUB  =$c883        ;Perform [gosub]
  155. GOTO   =$c8a0        ;Perform [goto]
  156. RETURN =$c8d2        ;Perform [return]
  157. DATA   =$c8f8        ;Perform [data]
  158. DATAN  =$c906        ;Search for Next Statement / Line
  159. IF     =$c928        ;Perform [if]
  160. REM    =$c93b        ;Perform [rem]
  161. ONGOTO =$c94b        ;Perform [on]
  162. LINGET =$c96b        ;Fetch linnum From BASIC
  163. LET    =$c9a5        ;Perform [let]
  164. PUTINT =$c9c4        ;Assign Integer
  165. PTFLPT =$c9d6        ;Assign Floating Point
  166. PUTSTR =$c9d9        ;Assign String
  167. PUTTIM =$c9e3        ;Assign TI$
  168. GETSPT =$ca2c        ;Add Digit to FAC#1
  169. PRINTN =$ca80        ;Perform [print#]
  170. CMD    =$ca86        ;Perform [cmd]
  171. STRDON =$ca9a        ;Print String From Memory
  172. PRINT  =$caa0        ;Perform [print]
  173. VAROP  =$cab8        ;Output Variable    
  174. CRDO   =$cad7        ;Output CR/LF    
  175. COMPRT =$cae8        ;Handle comma, TAB(, SPC(
  176. STROUT =$cb1e        ;Output String    
  177. OUTSPC =$cb3b        ;Output Format Character    
  178. DOAGIN =$cb4d        ;Handle Bad Data    
  179. GET    =$cb7b        ;Perform [get]    
  180. INPUTN =$cba5        ;Perform [input#]    
  181. INPUT  =$cbbf        ;Perform [input]    
  182. BUFFUL =$cbea        ;Read Input Buffer    
  183. QINLIN =$cbf9        ;Do Input Prompt    
  184. READ   =$cc06        ;Perform [read]    
  185. RDGET  =$cc35        ;General Purpose Read Routine    
  186. EXINT  =$ccfc        ;Input Error Messages
  187.             ;ccfc    '?EXTRA IGNORED<CR>'    
  188.             ;cd0c    '?REDO FROM START<CR>'    
  189.         
  190. NEXT   =$cd1e        ;Perform [next]
  191. DONEXT =$cd61        ;Check Valid Loop
  192. FRMNUM =$cd8a        ;Confirm Result
  193. FRMEVL =$cd9e        ;Evaluate Expression in Text
  194. EVAL   =$ce83        ;Evaluate Single Term
  195. PIVAL  =$cea8        ;Constant - pi
  196. QDOT   =$cead        ;Continue Expression
  197. PARCHK =$cef1        ;Expression in Brackets
  198. CHKCLS =$cef7        ;Confirm Character
  199. CHKPNC =$cef7        ;test ')'
  200. CHKPNO =$cefa        ;test '('
  201. CHKCOM =$cefd        ;test comma
  202. SNERR  =$cf08        ;Output "?SYNTAX Error"
  203. DOMIN  =$cf0d        ;Set up NOT Function
  204. RSVVAR =$cf14        ;Identify Reserved Variable
  205. ISVAR  =$cf28        ;Search for Variable    
  206. TISASC =$cf48        ;Convert TI to ASCII String    
  207. ISFUN  =$cfa7        ;Identify Function Type    
  208. STRFUN =$cfb1        ;Evaluate String Function    
  209. NUMFUN =$cfd1        ;Evaluate Numeric Function    
  210. OROP   =$cfe6        ;Perform [or], [and]"    
  211. DOREL  =$d016        ;Perform <, =, >"    
  212. NUMREL =$d01b        ;Numeric Comparison    
  213. STRREL =$d02e        ;String Comparison    
  214. DIM    =$d07e        ;Perform [dim]    
  215. PTRGET =$d08b        ;Identify Variable    
  216. ORDVAR =$d0e7        ;Locate Ordinary Variable    
  217. NOTFNS =$d11d        ;Create New Variable    
  218. NOTEVL =$d128        ;Create Variable    
  219. ARYGET =$d194        ;Allocate Array Pointer Space    
  220. N32768 =$d1a5        ;Constant 32768 in Flpt    DATA
  221. FACINX =$d1aa        ;FAC#1 to Integer in (AC/YR)
  222. INTIDX =$d1b2        ;Evaluate Text for Integer
  223. AYINT  =$d1bf        ;FAC#1 to Positive Integer
  224. ISARY  =$d1d1        ;Get Array Parameters
  225. FNDARY =$d218        ;Find Array
  226. BSERR  =$d245        ;"?Bad subscript error"
  227. FCERR  =$d248        ;"?Illegal quantity error"
  228. NOTFDD =$d261        ;Create Array
  229. INLPN2 =$d30e        ;Locate Element in Array
  230. UMULT  =$d34c        ;Number of Bytes in Subscript
  231. FRE    =$d37d        ;Perform [fre]
  232. GIVAYF =$d391        ;Convert Integer in (AC/YR) to Flpt
  233. POS    =$d39e        ;Perform [pos]
  234. ERRDIR =$d3a6        ;Confirm Program Mode
  235. GETFNM =$d3e1        ;Check Syntax of FN
  236. FNDOER =$d3f4        ;Perform [fn]
  237. STRD   =$d465        ;Perform [str$]
  238. STRLIT =$d487        ;Setup String
  239. PUTNW1 =$d4d5        ;Save String Descriptor
  240. GETSPA =$d4f4        ;Allocate Space for String
  241. GARBAG =$d526        ;Garbage Collection
  242. DVARS  =$d5bd        ;Search for Next String
  243. GRBPAS =$d606        ;Collect a String
  244. CAT    =$d63d        ;Concatenate Two Strings
  245. MOVINS =$d67a        ;Store String in High RAM
  246. FRESTR =$d6a3        ;Perform String Housekeeping
  247. FREFAC =$d6db        ;Clean Descriptor Stack
  248. CHRD   =$d6ec        ;Perform [chr$]
  249. LEFTD  =$d700        ;Perform [left$]
  250. RIGHTD =$d72c        ;Perform [right$]
  251. MIDD   =$d737        ;Perform [mid$]
  252. PREAM  =$d761        ;Pull sTring Parameters
  253. LEN    =$d77c        ;Perform [len]
  254. LEN1   =$d782        ;Exit String Mode
  255. ASC    =$d78b        ;Perform [asc]
  256. GTBYTC =$d79b        ;Evaluate Text to 1 Byte in XR
  257. VAL    =$d7ad        ;Perform [val]
  258. STRVAL =$d7b5        ;Convert ASCII String to Flpt
  259. GETNUM =$d7eb        ;Get parameters for POKE/WAIT
  260. GETADR =$d7f7        ;Convert FAC#1 to Integer in LINNUM
  261. PEEK   =$d80d        ;Perform [peek]
  262. POKE   =$d824        ;Perform [poke]
  263. WAIT   =$d82d        ;Perform [wait]
  264. FADDH  =$d849        ;Add 0.5 to FAC#1
  265. FSUB   =$d850        ;Perform Subtraction
  266. FADD5  =$d862        ;Normalize Addition
  267. FADD   =$d867        ;Perform Addition
  268. NEGFAC =$d947        ;2's Complement FAC#1
  269. OVERR  =$d97e        ;"?OVERFLOW Error"
  270. MULSHF =$d983        ;Multiply by Zero Byte
  271. FONE   =$d9bc        ;Table of Flpt Constants
  272. LOG    =$d9ea        ;Perform [log]
  273. FMULT  =$da28        ;Perform Multiply
  274. MULPLY =$da59        ;Multiply by a Byte
  275. CONUPK =$da8c        ;Load FAC#2 From Memory
  276. MULDIV =$dab7        ;Test Both Accumulators
  277. MLDVEX =$dad4        ;Overflow / Underflow
  278. MUL10  =$dae2        ;Multiply FAC#1 by 10
  279. TENC   =$daf9        ;Constant 10 in Flpt
  280. DIV10  =$dafe        ;Divide FAC#1 by 10
  281. FDIV   =$db07        ;Divide FAC#2 by Flpt at (AC/YR)
  282. FDIVT  =$db0f        ;Divide FAC#2 by FAC#1
  283. MOVFM  =$dba2        ;Load FAC#1 From Memory
  284. MOV2F  =$dbc7        ;Store FAC#1 in Memory
  285. MOVFA  =$dbfc        ;Copy FAC#2 into FAC#1    
  286. MOVAF  =$dc0c        ;Copy FAC#1 into FAC#2    
  287. ROUND  =$dc1b        ;Round FAC#1    
  288. SIGN   =$dc2b        ;Check Sign of FAC#1    
  289. SGN    =$dc39        ;Perform [sgn]    
  290. ABS    =$dc58        ;Perform [abs]    
  291. FCOMP  =$dc5b        ;Compare FAC#1 With Memory    
  292. QINT   =$dc9b        ;Convert FAC#1 to Integer    
  293. INT    =$dccc        ;Perform [int]    
  294. FIN    =$dcf3        ;Convert ASCII String to a Number in FAC#1    
  295. N0999  =$ddb3        ;String Conversion Constants
  296. INPRT  =$ddc2        ;Output 'IN ' + Line Number    
  297. FOUT   =$dddd        ;Convert FAC#1 to ASCII String    
  298. FOUTIM =$de68        ;Convert TI to String    
  299. FHALF  =$df11        ;Table of Constants    
  300. SQR    =$df71        ;Perform [sqr]    
  301. FPWRT  =$df7b        ;Perform power ($)
  302. NEGOP  =$dfb4        ;Negate FAC#1
  303. LOGEB2 =$dfbf        ;Table of Constants
  304. EXP    =$dfed        ;Perform [exp]
  305.  
  306. ;    
  307. ;Kernel ROM
  308. ; Code continues from Basic ROM
  309. ;    
  310. POLYX  =$e040        ;Series Evaluation
  311. RMULC  =$e08a        ;Constants for RND
  312. RND    =$e094        ;Perform [rnd]
  313. BIOERR =$e0f6        ;Handle I/O Error in BASIC
  314. BCHOUT =$e109        ;Output Character
  315. BCHIN  =$e10f        ;Input Character
  316. BCKOUT =$e115        ;Setup For Output
  317. BCKIN  =$e11b        ;Setup For Input
  318. BGETIN =$e121        ;Get One Character
  319. SYS    =$e127        ;Perform [sys]
  320. SAVET  =$e153        ;Perform [save]
  321. VERFYT =$e162        ;Perform [verify / load]
  322. OPENT  =$e1bb        ;Perform [open]
  323. CLOSET =$e1c4        ;Perform [close]
  324. SLPARA =$e1d1        ;Get Parameters For LOAD/SAVE
  325. COMBYT =$e1fd        ;Get Next One Byte Parameter
  326. DEFLT  =$e203        ;Check Default Parameters
  327. CMMERR =$e20b        ;Check For Comma
  328. OCPARA =$e216        ;Get Parameters For OPEN/CLOSE
  329. COS    =$e261        ;Perform [cos]
  330. SIN    =$e268        ;Perform [sin]
  331. TAN    =$e2b1        ;Perform [tan]
  332. PI2    =$e2dd        Table of Trig Constants
  333.             ;e2dd    pi/2   1.570796327
  334.             ;e2e2    pi*2   6.28318531
  335.             ;e2e7    0.25
  336.             ;e2ec    #05(counter)
  337.             ;e2ed    -14.3813907
  338.             ;e2f2    42.0077971
  339.             ;e2f7    -76.7041703
  340.             ;e2fc    81.6052237
  341.             ;e301    -41.3417021
  342.             ;e306    6.28318531
  343.         
  344. ATN    =$e30b        ;Perform [atn]
  345. ATNCON =$e33b        ;Table of ATN Constants
  346.             ;e33b    #0B(counter)
  347.             ;e3ec    -0.000684794
  348.             ;e341    0.004850942
  349.             ;e346    -0.161117018
  350.             ;e34b    0.034209638
  351.             ;e350    -0.054279133
  352.             ;e355    0.072457197
  353.             ;e35a    -0.089802395
  354.             ;e35f    0.110932413
  355.             ;e364    -0.142839808
  356.             ;e369    0.19999912
  357.             ;e36e    -0.333333316
  358.             ;e373    1
  359.         
  360. INIT   =$e378        ;BASIC Cold Start
  361. INITAT =$e387        ;CHRGET For Zero-page
  362. RNDSED =$e39f        ;RND Seed For zero-page (0.811635157)
  363. INITCZ =$e3a4        ;Initialize BASIC RAM
  364. INITMS =$e404        ;Output Power-Up Message
  365. WORDS  =$e429        ;Power-up Message
  366.             ;e429    ' BYTES FREE<CR>'
  367.             ;e436    '<CLR>**** CBM BASIC V2 ****<CR>'
  368.         
  369. BVTRS  =$e44f        ;Table of BASIC Vectors (for 0300)
  370. INITV  =$e45b        ;Initialize Vectors
  371. BASSFT =$e467        ;BASIC Warm Restart [RUN/STOP-RESTORE]
  372. UNKNO1 =$e475        ;UNKNOWN
  373. UNUSD2 =$e47c        ;Unused Bytes For Future Patches
  374. SOUT1  =$e4a0        ;Serial Output 1
  375. SOUT0  =$e4a9        ;Serial Output 0
  376. SDCLK  =$e4b2        ;Get Serial Data And Clock In
  377. SSADR  =$e4bc        ;Get Secondary Address patch for Serial LOAD/VERIFY
  378. SLDPCH =$e4c1        ;Relocated Load patch for Serial LOAD/VERIFY
  379. TPWPCH =$e4cf        ;Tape Write patch for CLOSE
  380. UNUSD3 =$e4da        ;Unused    
  381. SCREEN =$e505        ;Return Screen Organization
  382. PLOT   =$e50a        ;Read / Set Cursor X/Y Position
  383. CINT1  =$e518        ;Initialize I/O
  384. CLRSCN =$e55f        ;Clear Screen
  385. HOME   =$e581        ;Home Cursor
  386. SCNPTR =$e587        ;Set Screen Pointers
  387. IODEF1 =$e5b5        ;Set I/O Defaults (Unused Entry)
  388. IODEFL =$e5bb        ;Set I/O Defaults
  389. LP2    =$e5cf        ;Get Character From Keyboard Buffer
  390. INKEY  =$e5e5        ;Input From Keyboard
  391. INSCRN =$e64f        ;Input From Screen or Keyboard
  392. QUOTET =$e6b8        ;Quotes Test
  393. CMD4   =$e6c5        ;Set Up Screen Print
  394. CSRPLS =$e6ea        ;Advance Cursor
  395. CSRMIN =$e719        ;Retreat Cursor
  396. CSRUP  =$e72d        ;Back on to Previous Line
  397. OUTSCR =$e742        ;Output to Screen
  398. NOSHCH =$e756        ;-unshifted characters-
  399. SHCHRS =$e800        ;-shifted characters-
  400. NEWLIN =$e8c3        ;Go to Next Line
  401. CR     =$e8d8        ;Output <CR>
  402. CKLNMI =$e8e8        ;Check Line Decrement
  403. CKLNPL =$e8fa        ;Check Line Increment
  404. STCLRC =$e912        ;Set Color Code
  405. COLRTB =$e921        ;Color Code Table
  406. UNKNO2 =$e929        ;Unknown
  407. SCRLSC =$e975        ;Scroll Screen
  408. INSSPC =$e9ee        ;Open a Space On The Screen
  409. MOVELN =$ea56        ;Move a Screen Line
  410. COPYCL =$ea6e        ;Syncronize Color Transfer
  411. LINSTR =$ea7e        ;Set Start of Line
  412. CLRLIN =$ea8d        ;Clear Screen Line
  413. PRNSCR =$eaa1        ;Print To Screen
  414. SNCLRP =$eab2        ;Syncronize Color Pointer
  415. IRQENT =$eabf        ;Main IRQ Entry Point
  416. SCNKEY =$eb1e        ;Scan Keyboard
  417. PROCKY =$eb71        ;Process Key Image
  418. KDECOD =$ec46        ;Pointers to Keyboard decoding tables    
  419. KDECD1 =$ec5e        ;Keyboard Decoding Table-Unshifted
  420. KDECD2 =$ec9f        ;Keyboard Decoding Table-Shifted
  421. KDECD3 =$ece0        ;Keyboard Decoding Table-Commodore    
  422. GRTXTF =$ed21        ;Graphics/Text Control
  423. KDECD4 =$ed69        ;Keyboard Decoding Table    
  424. KDECD5 =$eda3        ;Keyboard Decoding Table-Control
  425. VICSUP =$ede4        ;Video Chip Set Up Table    
  426. RUNSHF =$edf4        ;Shift-Run Equivalent    
  427. LBSCAD =$edfd        ;Low Byte Screen Line Addresses
  428. OTDSBU =$ee49        ;Send Data On Serial Bus    
  429. FLGERR =$eeb4        ;Flag Errors    
  430.             ;eeb4  STATUS #80 - DEVICE NOT PRESENT
  431.             ;eeb7     STATUS #03 - WRITE TIMEOUT
  432. CLRATN =$eec5        ;Clear ATN
  433. WTFCLK =$eed3        ;Wait For Clock
  434. SCLK1  =$ef84        ;Serial Clock On
  435. SCLK0  =$ef8d        ;Serial Clock Off
  436. DELAY  =$ef96        ;Delay 1 ms
  437. SSEND  =$efa3        ;RS-232 Send
  438. SSNDN  =$efee        ;Send New RS-232 Byte
  439. DSRERR =$f016        ;'No DSR' Error    
  440. CTSERR =$f019        ;'No CTS' Error    
  441. DISTIM =$f021        ;Disable Timer    
  442. BITCNT =$f027        ;Compute Bit Count    
  443. SERRX  =$f036        ;RS-232 Receive    
  444. RXSET  =$f05b        ;Setup To Receive    
  445. PROCSB =$f068        ;Process RS-232 Byte    
  446. SSUBBT =$f0bc        ;Submit to RS-232    
  447. SSENDB =$f0ed        ;Send to RS-232 Buffer    
  448. SERINP =$f116        ;Input From RS-232    
  449. SERGET =$f14f        ;Get From RS-232    
  450. SBIDLE =$f160        ;Serial Bus Idle    
  451. KIOMST =$f174        ;Table of Kernal I/O Messages
  452.             ;f174    '<CR> I/O ERROR #'    
  453.             ;f1df    'OK<CR>'
  454. DIRMSG =$f1e2        ;Print Message if Direct
  455. MSG    =$f1e6        ;Print Message
  456. GTTSCH =$f250        ;Get From Tape / Serial / RS-232
  457. FIND   =$f3cf        ;Find File
  458. FLATRB =$f3df        ;Set File values
  459. SENDSA =$f495        ;Send Secondary Address
  460. SEROPN =$f4c7        ;Open RS-232
  461. LOADLN =$f549        ;-load-
  462. SERLOA =$f55c        ;Load File From Serial Bus
  463. TAPLOA =$f5ca        ;Load File From Tape
  464. SRCHMS =$f647        ;Print "SEARCHING"
  465. FLNMMS =$f659        ;Print Filename
  466. LOADMS =$f66a        ;Print "LOADING / VERIFYING"
  467. SAVELN =$f685        ;-save-
  468. SERSAV =$f692        ;Save to Serial Bus
  469. TAPESV =$f6f1        ;Save to Tape
  470. SAVEMS =$f728        ;Print "SAVING"
  471. IOERMS =$f77e        ;Output I/O Error Messages
  472.             ;f77e    'TOO MANY FILES'
  473.             ;f781    'FILE OPEN'
  474.             ;f784    'FILE NOT OPEN'
  475.             ;f787    'FILE NOT FOUND'
  476.             ;f78a    'DEVICE NOT PRESENT'
  477.             ;f78d    'NOT INPUT FILE'
  478.             ;f790    'NOT OUTPUT FILE'
  479.             ;f793    'MISSING FILENAME'
  480.             ;f796    'ILLEGAL DEVICE NUMBER'
  481. LOCTPH =$f7af        ;Find Any Tape Header
  482. WRTPHD =$f7e7        ;Write Tape Header
  483. GETBFA =$f84d        ;Get Buffer Address
  484. SETBST =$f854        ;Set Buffer Stat / End Pointers
  485. LOCSPH =$f867        ;Find Specific Tape Header
  486. INCTPT =$f88a        ;Bump Tape Pointer
  487. PLAYMS =$f894        ;"Print "PRESS PLAY ON TAPE"
  488. TPSTAT =$f8ab        ;Check Tape Status
  489. RECDMS =$f8b7        ;Print "PRESS RECORD..."
  490. TPREAD =$f8c0        ;Initiate Tape Read
  491. TPWRIT =$f8e3        ;Initiate Tape Write
  492. TPCODE =$f8f4        ;Common Tape Code
  493. TPSTOP =$f94b        ;Check Tape Stop
  494. SETRDT =$f95d        ;Set Read Timing
  495. RDTPBT =$f98e        ;Read Tape Bits
  496. STORTC =$faad        ;Store Tape Characters
  497. RSTTPP =$fbd2        ;Reset Tape Pointer
  498. NCHAR  =$fbdb        ;New Character Setup
  499. TONE   =$fbea        ;Send Tone to Tape
  500. TWRDTA =$fc06        ;Write Data to Tape
  501. WRLEDR =$fc95        ;Write Tape Leader
  502. RESIRQ =$fccf        ;Restore Normal IRQ
  503. STOIRQ =$fcf6        ;Set IRQ Vector
  504. NOMOTR =$fd08        ;Kill Tape Motor
  505. CKWRPT =$fd11        ;Check Read / Write Pointer
  506. INCRDP =$fd1b        ;Bump Read / Write Pointer
  507. RSTXFR =$fd22        ;Power-up RESET Entry
  508. SCNROM =$fd3f        ;Check For A000 ROM
  509. ROMSG  =$fd4d        ;Autostart ROM signature 'a0CBM'
  510. KNLRSV =$fd6d        ;Kernal reset vector table
  511. RAMTAS =$FD8D        ;Initialize System Constants
  512. TPVECT =$fdf1        ;IRQ vector table for tape I/O
  513. IOINIT =$FDF9        ;Initialize I/O
  514. ENABTM =$fe39        ;Enable Timer
  515. NMIXFR =$fea9        ;NMI Transfer Entry
  516. WARMST =$fed2        ;Warm Start Basic [BRK]
  517. EOI    =$ff56        ;Exit Interrupt
  518. 232TBL =$ff5b        ;RS-232 Timing Table
  519. IRQXFR =$ff72        ;IRQ Transfer Entry
  520.  
  521. VIC-20 ROM Variable Equates    Page 1
  522. 12/13/96 8:54 AM
  523.  
  524.  
  525.  
  526.